/*
Date:20210419 09:57 pm
key:位运算交换两个值超级快真的。目标值相等就移到前面。
*/
class Solution {
public:
void swap(int&a,int&b)
{
    a=a^b;
    b=a^b;
    a=a^b;
}
    int removeElement(vector<int>& nums, int val) 
    {
        int i,j;
        i=0;
        j=0;
        while(j<nums.size())
        {
            if(nums[j]==val)
            {
                swap(nums[i],nums[j]);
                i++;
            }
            j++;
        }
        
        nums.erase(nums.begin(),nums.begin()+i);
        //for(auto j:nums){cout<<j<<" ";}
        return nums.size();
    }
    
};